home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / modelers / geomview / source.lha / Geomview / include / mibload.h < prev    next >
C/C++ Source or Header  |  1993-11-12  |  4KB  |  145 lines

  1. #include <stdio.h>
  2. #include <X11/Intrinsic.h>
  3. #include <X11/Shell.h>
  4. #include <Xm/Xm.h>
  5. #include <Xm/Text.h>
  6. #include <Xm/TextF.h>
  7. #include <Xm/RowColumn.h>
  8. #include <Xm/MainW.h>
  9. #include <Xm/Label.h>
  10. #include <Xm/PushB.h>
  11. #include <Xm/PushBG.h>
  12. #include <Xm/ToggleB.h>
  13. #include <Xm/ToggleBG.h>
  14. #include <Xm/DrawingA.h>
  15. #include <Xm/CascadeBG.h>
  16. #include <Xm/SeparatoG.h>
  17. #include <Xm/Frame.h>
  18. #include <Xm/BulletinB.h>
  19. #include <Xm/Scale.h>
  20. #include <Xm/ScrollBar.h>
  21. #include <Xm/Form.h>
  22. #include <Xm/List.h>
  23. #include <Xm/FileSB.h>
  24. #include <Xm/AtomMgr.h>
  25. #include <Xm/Protocols.h>
  26. #include <Xm/MwmUtil.h>
  27.  
  28.  
  29. /* Structure of mib_Widget */
  30. /*****************************************************************************/
  31.  
  32. typedef struct _mib_Widget {
  33.   char        *mib_class;    /* name of mib class (Button, TextBox, etc..)*/
  34.   int         mib_class_num; /* class number for ez reference :) */
  35.   int         mib_mynum;    /* numbering for storage format */
  36.   Widget     me;        /* Xt widget */
  37.   int         mib_selected;    /* is selected */
  38.   int         mib_resizing;  /* is resizing 1, or being moved 0 */
  39.   int         mib_resizetype;/* 1  = upper left, 2 = upper, 3 = ... */
  40.   int         mib_allowresize; /* can this widget be resized ? */
  41.  
  42.   int         clkx, clky;    /* where user clicked */
  43.  
  44.   void        *myres;        /* my resources (different for each widget) */
  45.  
  46.   char        *name;        /* reference name of this widget */
  47.   int         width, height;    /* width and height */
  48.  
  49.   int   topAttachment, bottomAttachment, leftAttachment, rightAttachment;
  50.                 /* attachments 1=attached 0=not-attached */
  51.  
  52.   int   topOffset, bottomOffset, leftOffset, rightOffset;
  53.                 /* offsets if attached */
  54.  
  55.   struct _mib_Widget *parent;   /* pointer to parent */
  56.   struct _mib_Widget *sibling;  /* remaining linked list of sibling widgets */
  57.   struct _mib_Widget *prev;    /* previous sibling or parent */
  58.   struct _mib_Widget *child;    /* linked list of children widgets */
  59. } mib_Widget;
  60.  
  61. /* mib_Buffer structure */
  62. /*****************************************************************************/
  63.  
  64. typedef struct _mib_Buffer {
  65.   void  *buffer;    /* pointer to either a file or a char string */
  66.   int     buf_type;    /* type of buffer (defined above) */
  67.   int     point;        /* pointer for string */
  68.   int    buflen;    /* length of string buffer */
  69. } mib_Buffer;
  70.  
  71. /* mib_Widget functions */
  72. /*****************************************************************************/
  73.  
  74. void mib_add_mib_Widget(mib_Widget *, mib_Widget *);
  75. void mib_add_backward_Widget(mib_Widget *, mib_Widget *);
  76. void mib_remove_mib_Widget(mib_Widget *);
  77. void mib_clear_myres(mib_Widget *);
  78. mib_Widget *mib_new_mib_Widget();
  79. mib_Widget *mib_find_name(mib_Widget *, char *);
  80. mib_Widget *mib_load_interface(Widget, char *, int);
  81. int mib_count_all(mib_Widget *, int);
  82. int mib_load_Root(Widget, mib_Widget **, mib_Buffer *);
  83. mib_Widget *mib_load_public(mib_Widget *, mib_Widget *, mib_Buffer *);
  84. int mib_load_mib_class(mib_Widget **, mib_Widget *, char *, char *,
  85.         mib_Buffer *);
  86. int mib_load_private(mib_Widget *, mib_Buffer *);
  87. void mib_reset_size(mib_Widget *);
  88. int mib_read_line(mib_Buffer *, char *, char *);
  89. void mib_set_eventhandlers(void *, void *, void *);
  90. void mib_apply_eventhandlers(Widget, mib_Widget *);
  91.  
  92. /* supporting functions and structures */
  93. /*****************************************************************************/
  94.  
  95. typedef struct _menu_item {
  96.   char        *label;
  97.   WidgetClass *class;
  98.   char         mnemonic;
  99.   char        *accelerator;
  100.   char        *accel_text;
  101.   void        (*callback)();
  102.   XtPointer   callback_data;
  103.   struct _menu_item *subitems;
  104. } MenuItem;
  105.  
  106. Widget BuildMenu(Widget, int, char *, char, MenuItem *);
  107.  
  108. /* mib class numbers */
  109.  
  110. #define MIB_NULL        0
  111. #define MIB_TEXTBOX        1
  112. #define MIB_BUTTON        2
  113. #define MIB_TOGGLE        3
  114. #define MIB_RADIOBOX        4
  115. #define MIB_DRAWINGAREA        5
  116. #define MIB_LABEL        6
  117. #define MIB_FRAME        7
  118. #define MIB_SCROLLBAR        8
  119. #define MIB_TEXTBIG        9
  120. #define MIB_LIST        10
  121. #define MIB_SCALE        11
  122. #define MIB_MENU        12
  123.  
  124. /* number of classes */
  125. #define MI_NUMCLASSES        12
  126.  
  127. /* for specifying creation of a widget with
  128.    default private values, no values at all (empty),
  129.    or no values and editable */
  130.  
  131. #define WDEFAULT        1
  132. #define WEMPTY            2
  133. #define WEDIT            3
  134.  
  135. /* for specifing whether we are loading an
  136.    interface from a file or from a string and whether it
  137.    is editable :) */
  138.  
  139. #define MI_FROMFILE        1
  140. #define MI_EDITFROMFILE        2
  141. #define MI_FROMSTRING        3
  142. #define MI_EDITFROMSTRING    4
  143.  
  144. #define MI_MAXSTRLEN        200   /* maximum string length */
  145.